package com.um.info.service.impl;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import com.cs.framework.jdbc.common.dao.CommonDao;
import com.um.info.dto.base.UmMenuDto;
import com.um.info.service.UmMenuService;

/**
 * UM菜单
 * 
 * @author hedongzhou
 * 
 */
@Service("umMenuService")
public class UmMenuServiceImpl implements UmMenuService {

	@Resource
	private CommonDao commonDao;

	/**
	 * 查询用户可见菜单列表
	 * 
	 * @param parentId
	 *            父节点
	 * @param userId
	 *            用户名
	 * @return
	 */
	public List<UmMenuDto> getCanSeeMenu(String parentId, String userId) {
		return loopGetMenu(parentId, userId, "UmMenu.getCanSeeMenu");
	}

	/**
	 * 查询用户可配置菜单列表
	 * 
	 * @param parentId
	 *            父节点
	 * @param userId
	 *            用户名
	 * @return
	 */
	public List<UmMenuDto> getCanSetMenu(String parentId, String userId) {
		return loopGetMenu(parentId, userId, "UmMenu.getCanSetMenu");
	}

	/**
	 * 循环获取菜单
	 * 
	 * @param parentId
	 *            父节点
	 * @param userId
	 *            用户名
	 * @param sqlId
	 *            sql的ID
	 * @return
	 */
	private List<UmMenuDto> loopGetMenu(String parentId, String userId, String sqlId) {
		Map<String, String> params = new HashMap<String, String>();
		params.put("parentId", parentId);
		params.put("userId", userId);

		List<UmMenuDto> list = commonDao.selectList(sqlId, params, UmMenuDto.class);

		for (UmMenuDto one : list) {
			if (!"Y".equals(one.getLeaf())) {
				one.setChildren(loopGetMenu(one.getMenuId(), userId, sqlId));
			}
		}

		return list;
	}

}
